using System.Collections.Generic;

namespace etcetera.Mvc.UI.Toolbar
{
    public enum NavButton
    {
        First,
        Previous,
        Next,
        Last
    }

    public interface IToolbar
    {
        ICollection<ToolbarItem> Items { get; }
        IPagerToolStrip ToolStrip { get; set; }
        IToolbar AddButton(string linkTitle, string url, string buttonClass);
        IToolbar AddNavButton(NavButton navButton);
        IToolbar AddPageSizeSelect(params int[] options);
        IToolbar AddPageInput();
        IToolbar AddPageStatus();

        /// <summary>
        /// Adds a refresh button.
        /// </summary>
        /// <param name="reset">if set to <c>true</c> the refresh will point to the first page.</param>
        /// <returns></returns>
        IToolbar AddRefreshButton(bool reset);

        /// <summary>
        /// Adds the refresh button.
        /// </summary>
        /// <param name="buttonTitle">The button title.</param>
        /// <returns></returns>
        IToolbar AddRefreshButton(string buttonTitle);

        /// <summary>
        /// Adds a refresh button.
        /// </summary>
        /// <param name="reset">if set to <c>true</c> the refresh will point to the first page.</param>
        /// <param name="buttonTitle">The button title.</param>
        /// <returns></returns>
        IToolbar AddRefreshButton(bool reset, string buttonTitle);
    }
}